﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using S2B_SCL.Dados.OBJ;
using System.Data.Sql;
using System.Data.SqlClient;
using System.Data;
using S2B_SCL.Dados.INTF;

namespace S2B_SCL.Dados.DAO
{
    public class ClassDAO: ClassINTF
    {
        //referencia a connectionstring em um variável conecta.
        private string conecta = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

        public void InsereCadastro(Curso curso, int idEmpresa)
        {
            
            
            SqlConnection conexao = new SqlConnection(conecta);
            //
            SqlCommand comando = new SqlCommand("INSERT INTO TBCurso VALUES('" + curso.Nome + "', (SELECT IDArea FROM TBArea WHERE Area = '" + curso.Area + "'  ) ,(SELECT IDEstado FROM TBEstado WHERE NomeEstado = '" + curso.Estado + "'),(SELECT IDPagoGratis FROM TBPagoGratis WHERE PagoGratis = '" + curso.PagoGratis + "'),'" + curso.Link + "','" + curso.Horas + "', '" + idEmpresa + "' )", conexao);
            //comando.CommandType = CommandType.Text;
            ////aqui os parametros são adicionados as suas respectivas variáveis do comando
            //comando.Parameters.AddWithValue("nome", curso.Nome);
            //comando.Parameters.AddWithValue("area", curso.Area);
            //comando.Parameters.AddWithValue("estado", curso.Estado);
            //comando.Parameters.AddWithValue("pagoGratis", curso.PagoGratis);
            //comando.Parameters.AddWithValue("link", curso.Link);
            //comando.Parameters.AddWithValue("horas", curso.Horas);
            //comando.Parameters.AddWithValue("empresa", idEmpresa);
            
            
            try
            {
                conexao.Open();
                comando.ExecuteNonQuery();

            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
            finally
            {
                conexao.Close();
            }

        }
        
        public List<Curso> buscaCursos(Curso curso)//METODO QUE É CHAMADO NA CATALOGO BUSCA CURSO . ASPX
        {
            SqlConnection conexao = new SqlConnection(conecta);
            //SqlCommand comando = new SqlCommand("SELECT * FROM TBCurso WHERE Area = (SELECT IDArea FROM TBArea WHERE Area = '" + curso.Area + "')AND NomeEstado = (SELECT IDEstado FROM TBEstdo WHERE NomeEstado = '" + curso.Estado + "') AND PagoGratis = (SELECT IDPagoGratis FROM TBPagoGratis WHERE PagoGratis = '" + curso.PagoGratis + "')," + curso.Link + "','" + curso.Horas + "', '" + curso.Empresa + "' )", conexao);
            SqlCommand comando = new SqlCommand("SELECT * FROM TBCurso WHERE IDArea = (SELECT IDArea FROM TBArea WHERE Area = '" + curso.Area + "')AND IDEstado = (SELECT IDEstado FROM TBEstado WHERE NomeEstado = '" + curso.Estado + "') AND IDPagoGratis = (SELECT IDPagoGratis FROM TBPagoGratis WHERE PagoGratis = '" + curso.PagoGratis + "')", conexao);

            conexao.Open();
            SqlDataReader dr = comando.ExecuteReader();

            List<Curso> guardaCurso = new List<Curso>();
            Curso tempC;
            while (dr.Read())
            {
                tempC = new Curso();
                tempC.Nome = dr["NomeCurso"].ToString();
                tempC.Estado = dr["NomeEstado"].ToString();
                tempC.Area = dr["Area"].ToString();
                tempC.PagoGratis = dr["PagoGratis"].ToString();
                tempC.Link = "~/Paginas/catalogoBuscaCursos.aspx?idCurso=" + dr["IDCurso"].ToString();
                tempC.Horas = Convert.ToInt32(dr["DuracaoHoras"]);
                tempC.Empresa = Convert.ToInt32(dr["IDEmpresa"]);
                guardaCurso.Add(tempC);
            }
            conexao.Close();
            return guardaCurso;

        }
         
    }
}
